//=============================================================================
//
// file :         HorlogeClass.h
//
// description :  Include for the HorlogeClass root class.
//                This class is represents the singleton class for
//                the Horloge device class.
//                It contains all properties and methods which the 
//                Horloge requires only once e.g. the commands.
//			
// project :      TANGO Device Server
//
// $Author: raph $
//
// $Revision: 1.1.1.1 $
//
// $Log: HorlogeClass.h,v $
// Revision 1.1.1.1  2002/05/15 10:05:03  raph
// initial cvs import
//
//
// copyleft :     European Synchrotron Radiation Facility
//                BP 220, Grenoble 38043
//                FRANCE
//
//=============================================================================
//
//  		This file is generated by POGO
//	(Program Obviously used to Generate tango Object)
//
//         (c) - Software Engineering Group - ESRF
//=============================================================================

#ifndef _HORLOGECLASS_H
#define _HORLOGECLASS_H

#include <tango.h>


namespace Horloge
{
//
// Define classes for commands
//
class DevTestCmdCmd : public Tango::Command
{
public:
	DevTestCmdCmd(const char *,Tango::CmdArgType, Tango::CmdArgType,const char *,const char *);
	DevTestCmdCmd(const char *,Tango::CmdArgType, Tango::CmdArgType);
	~DevTestCmdCmd() {};
	
	virtual bool is_allowed (Tango::DeviceImpl *, const CORBA::Any &);
	virtual CORBA::Any *execute (Tango::DeviceImpl *, const CORBA::Any &);
};


class DevGetDateCmd : public Tango::Command
{
public:
	DevGetDateCmd(const char *,Tango::CmdArgType, Tango::CmdArgType,const char *,const char *);
	DevGetDateCmd(const char *,Tango::CmdArgType, Tango::CmdArgType);
	~DevGetDateCmd() {};
	
	virtual bool is_allowed (Tango::DeviceImpl *, const CORBA::Any &);
	virtual CORBA::Any *execute (Tango::DeviceImpl *, const CORBA::Any &);
};



//
// The HorlogeClass singleton definition
//

class HorlogeClass : public Tango::DeviceClass
{
public:

//	add your own data members here
//------------------------------------

public:

//	Method prototypes
	static HorlogeClass *init(const char *);
	static HorlogeClass *instance();
	~HorlogeClass();
	
protected:
	HorlogeClass(string &);
	static HorlogeClass *_instance;
	void command_factory();

private:
	void device_factory(const Tango::DevVarStringArray *);
};


}	//	namespace Horloge

#endif // _HORLOGECLASS_H
